import { getAction } from '@/api/manage'

export function getDicts(codeTypeIds) {
  return getAction('/sys/codeInfo/getSysCodeInfos', { codeTypeIds })
}

export function formatDictText(dicts, values) {
  if (!(Array.isArray(dicts) && dicts.length > 0)) {
    return values
  }
  if (!values) {
    return ''
  }
  const valueArr = values.split(',')
  const contentArr = []
  dicts.forEach(dict => {
    for (let i = 0; i < valueArr.length; i++) {
      if (valueArr[i] === dict.value) {
        contentArr.push(dict.content)
        break
      }
    }
  })
  return contentArr.toString()
}

export function getCurDate() {
  // 获取当前日期
  var date = new Date()

  // 获取当前月份
  var nowMonth = date.getMonth() + 1

  // 获取当前是几号
  var strDate = date.getDate()

  // 添加分隔符“-”
  var seperator = '-'

  // 对月份进行处理，1-9月在前面添加一个“0”
  if (nowMonth >= 1 && nowMonth <= 9) {
    nowMonth = '0' + nowMonth
  }

  // 对月份进行处理，1-9号在前面添加一个“0”
  if (strDate >= 0 && strDate <= 9) {
    strDate = '0' + strDate
  }

  // 最后拼接字符串，得到一个格式为(yyyy-MM-dd)的日期
  return date.getFullYear() + seperator + nowMonth + seperator + strDate
}

export function removeObjWithArr(_arr, _obj) {
  var length = _arr.length
  for (var i = 0; i < length; i++) {
    if (isObjectValueEqual(_arr[i], _obj)) {
      if (i === 0) {
        _arr.shift() // 删除并返回数组的第一个元素
        return
      } else if (i === length - 1) {
        _arr.pop() // 删除并返回数组的最后一个元素
        return
      } else {
        _arr.splice(i, 1) // 删除下标为i的元素
        return
      }
    }
  }
}

export function isObjectValueEqual(a, b) {
  if (typeof (a) !== 'object' && typeof (b) !== 'object') {
    if (a === b) {
      return true
    } else {
      return false
    }
  }
  var aProps = Object.getOwnPropertyNames(a)
  var bProps = Object.getOwnPropertyNames(b)

  if (aProps.length !== bProps.length) {
    return false
  }

  for (var i = 0; i < aProps.length; i++) {
    var propName = aProps[i]

    if (a[propName] !== b[propName]) {
      return false
    }
  }

  return true
}

export function isEmpty(obj) {
  return (typeof obj === 'undefined' || obj === null || (typeof (obj) === 'string' && obj.trim() === ''))
}
